Što je unutra?

  • Medijske objave o aparatima za kavu u Hrvatskoj (LatteGo, De`Longhi, Krups i Nesspreso)

  • Cijeli medijski prostor u Hrvatskoj

  • razdoblje od 2021-01-09 do 2022-11-01

  • Podatci sa mediatoolkit servisa

  • 290 objava koje sadrže ukupno 8.980 riječi

  • Izvještaj uključuje: dekriptivni pregled medijskog prostora, analizu sentimenta, analizu frekvencija i tematsku analizu.


## Rows: 289
## Columns: 9
## $ TITLE           <chr> "Hello.. #hello #monday #january #winter #day #work #l~
## $ MENTION_SNIPPET <chr> "Hello.. #hello #monday #january #winter #day #work #l~
## $ DATE            <chr> "2022-01-10", "2022-01-08", "2022-01-07", "2022-01-06"~
## $ SOURCE_TYPE     <chr> "instagram", "twitter", "instagram", "twitter", "forum~
## $ AUTHOR          <chr> "anonymous_user", "Sarlo", "anonymous_user", "<U+0001D4EB><U+0001D4F8><U+0001D4F8><U+0001D4F4><U+0001D4EA> <U+0001D4EB><U+0001D4F8>~
## $ FROM            <chr> "anonymous_user", "Sarlo", "anonymous_user", "<U+0001D4EB><U+0001D4F8><U+0001D4F8><U+0001D4F4><U+0001D4EA> <U+0001D4EB><U+0001D4F8>~
## $ kword           <chr> "Nespresso", "Nespresso", "LatteGo", "Nespresso", "Nes~
## $ datum           <date> 2022-01-10, 2022-01-08, 2022-01-07, 2022-01-06, 2022-~
## $ clanak          <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,~


U sljedećem koraku provodimo tokenizaciju, odnosno pretvaranje teksta na jedinice analize koje su u ovom slučaju su riječi:




Potom valja očistiti riječi od brojeva i nepotrebnih riječi. Na tako uređenim podatcima ćemo potom napraviti deskriptivno-statistički pregled teksta.




Na tako uređenim podatcima ćemo napraviti deskriptivno-statistički pregled teksta:



## [1] "2021-09-01" "2022-01-10"
##             word   n
## 1       hrvatska 147
## 2      nespresso  92
## 3      de’longhi  60
## 4        lattego  45
## 5            dom  35
## 6        bauhaus  33
## 7         coffee  31
## 8           kavu  31
## 9        philips  31
## 10       samsung  31
## 11          kave  21
## 12        istria  20
## 13       mikulec  19
## 14        aparat  18
## 15       citroën  18
## 16          jysk  18
## 17          kler  18
## 18    namještaja  18
## 19    pogledajte  18
## 20        qualis  18
## 21         salon  18
## 22        akcija  17
## 23         krups  17
## 24        možete  17
## 25 philipscoffee  17


…i deskriptivno-statistički pregled objava:



##   Domena
## 1      6
## # A tibble: 7 x 2
##   SOURCE_TYPE     n
##   <chr>       <int>
## 1 web           110
## 2 facebook       73
## 3 instagram      51
## 4 forum          44
## 5 youtube         5
## 6 twitter         4
## 7 reddit          2
## # A tibble: 4 x 2
##   kword         n
##   <chr>     <int>
## 1 Nespresso   135
## 2 DeLonghi     84
## 3 Krups        35
## 4 LatteGo      35


Analiza sentimenta

Nakon uređivanja podataka i osnovnog pregleda ćemo provesti analizu sentimenta. Za analizu sentimenta je potrebno preuzeti leksikone koji su za hrvatski jezik napravljeni u okviru FER-ovog Croatian Sentiment Lexicon. Analiza sentimenta i uključuje sentiment kroz vrijeme, doprinos riječi sentimentu, ‘wordCloud’ i analizu negativnosti brandova.

Pogledajmo prvo kako izgledaju leksikoni (koje smo učitali još na početku):



##               word sentiment brija
##  1:           zrin   0.27389   NEG
##  2:        okretan   0.42424   NEG
##  3: selekcionirati   0.19291   NEG
##  4:         koralj   0.28412   NEG
##  5:         čovjek   0.00000   NEG
##  6:   malformacija   0.42143   NEG
##  7:    zaklinjanje   0.27262   NEG
##  8:         silvio   0.53131   NEG
##  9:           ment   0.17010   NEG
## 10:   izdržljivost   0.50800   NEG
##            word sentiment brija
##  1:    sabotaža   0.34654   POZ
##  2:   klonirati   0.32125   POZ
##  3:   preambula   0.31002   POZ
##  4:    hotelski   0.44414   POZ
##  5: pridodavati   0.46002   POZ
##  6:     oporuka   0.30045   POZ
##  7:  desetljeće   0.27544   POZ
##  8:     ucrtati   0.19279   POZ
##  9:       grgin   0.19294   POZ
## 10:      pošten   0.43426   POZ
##                word sentiment brija
##  1:      zaklanjati  0.453180   NEG
##  2:      federacija  0.429600   NEG
##  3:      nalikovati  0.593100   NEG
##  4:           harač  0.239360   POZ
##  5:          tender  0.223380   NEG
##  6:   transeuropski  0.089615   POZ
##  7:           afera  0.338380   NEG
##  8:      funkcionar  0.329730   NEG
##  9:        glasovir  0.311510   NEG
## 10: reosiguravatelj  0.225980   POZ
##           word sentiment
## 1    slavonski         0
## 2        briga         0
## 3  nedostajati         1
## 4    rješavati         2
## 5          dio         0
## 6      nedavan         0
## 7        kupac         0
## 8    sjedinjen         2
## 9      moderan         2
## 10    drukčiji         0


Provjerimo kretanje sentimenta u vremenu:




Korisno je i promotriti koje riječi najviše doprinose sentimentu (pozitivnom, negativnom i neutralnom):




Korisno je pogledati i WordCloud sentiment. Pogledajmo “obični” WordCloud prije toga:

Ovako izgleda WordCloud koji sadržava i prikaz sentimenta:

Analiza sentimenta se može iskoristiti za pregled negativnosti pojedinih brandova:



## # A tibble: 2 x 4
##   kword     negWords  word negativnostIndex
##   <chr>        <int> <int>            <dbl>
## 1 LatteGo          1   547           0.183 
## 2 Nespresso        1  1086           0.0921


…također i pozitivnosti brandova:



## # A tibble: 4 x 4
##   kword     pozWords  word pozitivnostIndex
##   <chr>        <int> <int>            <dbl>
## 1 DeLonghi        41  1368             3.00
## 2 Nespresso       20  1086             1.84
## 3 LatteGo         10   547             1.83
## 4 Krups            4   233             1.72


Analiza vaznosti pojmova

Nakon analize sentimenta je korisno analizirati i najbitnije riječi. To se radi pomoću IDF (inverse document frequency) metode. IDF metoda omogućuje identifikaciju važnih (ne nužno čestih) riječi u korpusu i može poslužiti za analizu najvažnijih pojmova po brandovima.



##        kword      word   n totWords          tf       idf      tf_idf
## 1  Nespresso nespresso 181     4143 0.043688149 0.2876821 0.012568297
## 2   DeLonghi  hrvatska 146     2607 0.056003069 0.6931472 0.038818369
## 3  Nespresso        za 144     4143 0.034757422 0.0000000 0.000000000
## 4  Nespresso         i 136     4143 0.032826454 0.0000000 0.000000000
## 5  Nespresso         u 115     4143 0.027757664 0.0000000 0.000000000
## 6  Nespresso        je 108     4143 0.026068067 0.0000000 0.000000000
## 7   DeLonghi         u  82     2607 0.031453778 0.0000000 0.000000000
## 8   DeLonghi de’longhi  72     2607 0.027617952 1.3862944 0.038286611
## 9    LatteGo   lattego  58     1088 0.053308824 1.3862944 0.073901721
## 10     Krups     krups  50     1142 0.043782837 0.6931472 0.030347950
## 11 Nespresso         s  47     4143 0.011344436 0.0000000 0.000000000
## 12  DeLonghi        za  45     2607 0.017261220 0.0000000 0.000000000
## 13 Nespresso        na  45     4143 0.010861694 0.0000000 0.000000000
## 14  DeLonghi         s  44     2607 0.016877637 0.0000000 0.000000000
## 15  DeLonghi         i  41     2607 0.015726889 0.0000000 0.000000000
## 16  DeLonghi        je  39     2607 0.014959724 0.0000000 0.000000000
## 17   LatteGo   philips  37     1088 0.034007353 0.6931472 0.023572101
## 18 Nespresso      kavu  37     4143 0.008930727 0.0000000 0.000000000
## 19 Nespresso      kave  36     4143 0.008689356 0.2876821 0.002499772
## 20  DeLonghi       dom  35     2607 0.013425393 1.3862944 0.018611547
## 21 Nespresso       ili  35     4143 0.008447985 0.2876821 0.002430334
## 22  DeLonghi   bauhaus  33     2607 0.012658228 1.3862944 0.017548030
## 23  DeLonghi        na  32     2607 0.012274645 0.0000000 0.000000000
## 24  DeLonghi   samsung  31     2607 0.011891063 1.3862944 0.016484513
## 25     Krups         i  30     1142 0.026269702 0.0000000 0.000000000
## 26   LatteGo        za  30     1088 0.027573529 0.0000000 0.000000000
## 27 Nespresso    aparat  28     4143 0.006758388 0.0000000 0.000000000
## 28     Krups        za  27     1142 0.023642732 0.0000000 0.000000000
## 29 Nespresso        uz  26     4143 0.006275646 0.0000000 0.000000000
## 30  DeLonghi      kavu  25     2607 0.009589567 0.0000000 0.000000000


nGrami

Do sada smo analizirali tekst na osnovi pojedinačnih riječi. Takav pristup ograničava nalaze do kojih je moguće doći kada se tekst sagleda na osnovi fraza (dvije ili n riječi). U sljedećemo koraku ćemo tokenizirati tekst na bigrame (dvije riječi) kako bismo proveli frazeološku analizu. Korištenje bigrama otvara mogućnosti korištenja dodatnih pokazatelja pa ćemo provesti i analizu korelacije među riječima.



##                      bigram  n
## 1                   za kavu 64
## 2        de’longhi hrvatska 44
## 3                 aparat za 36
## 4          bauhaus hrvatska 33
## 5              nespresso je 24
## 6                      je u 22
## 7          istria de’longhi 20
## 8                 my istria 20
## 9             jysk hrvatska 18
## 10            kler hrvatska 18
## 11          namještaja kler 18
## 12             qualis salon 18
## 13         salon namještaja 18
## 14                    dom s 16
## 15       hrvatska family.hr 16
## 16         mirjanom mikulec 16
## 17               s mirjanom 16
## 18              tražimo dom 16
## 19                   dom po 15
## 20                  moj dom 15
## 21                   za sve 15
## 22      family.hr de’longhi 14
## 23          hrvatska svijet 14
## 24             lesnina xxxl 14
## 25 philipshomeliving coffee 14


Provjerimo koje su riječi najviše korelirane sa izabranim ključnim riječima:




Tematska analiza

Na kraju provodimo tematsku analizu kao najsloženiji dio do sada provedene analize. Pri tome koristimo LDA (Latent Dirichlet allocation) algoritam kako bismo pronašli najvažnije riječi u algoritamski identificiranim temama. Ovdje je važno primijetiti da prije provedbe LDA modela tokenizirane riječi treba pretvoriti u matricu pojmova (document term matrix) koju ćemo kasnije koristiti kao input za LDA algoritam.




Tematsku analizu je moguće i napraviti na bigramski tokeniziranom tekstu. Tada je često moguće doći do preciznijih i kontekstualno relevantnijih uvida:




Zaključak

U ovom smo predavanju dali uvodni pregled mogućnosti analize teksta u okviru tidytext paketa. Riječ je o skupu alata koji omogućavaju “prilagodbu” teksta u tidy format i daljnu analizu s tidyverse alatima koje smo do sada već dobro upoznali. tidytext nije jedini dostupan okvir za analizu teksta u R, već postoji i niz drugih paketa (vidi na početku) koji omogućavaju korištenje naprednijih (algoritamkskih tehnika.

U predavanju su korišteni tekstovi objavljeni u svim hrvatskim medijima o proizvođačima aparata za kavu u razdoblju četiri mjeseca. Predavanje je imalo za cilj demonstrirati uvodne mogućnosti tekstualne analize te osnovnih tehnika i alata.

Analiza teksta (NLP) je trenutno (brzo) rastuće istraživačko područje sa sve većim brojem primjena, novih etodoloških pristupa i perspektiva. Dostupno je mnoštvo kvalitetnih i korisnih resursa pa se zainteresiranim studentima preporuča uključivanje u ovu (vrlo perspektivnu) istraživačku paradigmu.

 

Izradio lusiki

Data from Mediatoolkit